1. Field of the Invention
The present invention relates to a memory management system and method, and more particularly to a memory management system and method for open platform.
2. Description of the Related Art
In the trend of the evolution of digital home and the rapid development of internet, the development of the application software are gradually focusing on services, e.g., home security, health care, home automation, and audio-visual entertainment, etc. Thus, in order to meet different service requirements of users, facilitate the installation and management of remote applications, and overcome troubles for users in installation and setting, a design of an open software architecture platform is of great importance and necessity. For example, the open service platform proposed by the Open Services Gateway Initiative (OSGi) alliance is one of the solutions.
As the open platform provides open platform architecture, applications of services of various properties can be dynamically loaded according to different requirements from the users, so as to provide diversified services for the users. However, since the service applications can be dynamically added in the open platform, excessive service applications or those incompatible with the capability of the system platform may be loaded, thus leading to the resource overloading or shortage in the open platform.
The open platform and the applications share a memory space of a virtual machine, and the memory space is allocated and used for providing services. Thus, when the available memory space originally set in the virtual machine fails to meet the memory size required in executing all the services, an exception of out of memory may occur, and the thread with the exception will be suspended. However, due to the open and service sharing architecture of the open platform, instances generated by the suspended thread may still be invoked by other applications, so the system cannot reclaim the occupied memory. Therefore, for the whole system, the execution efficiency of other applications in the system may be affected, and even worse, the executed services may be interrupted, resulting in instability of the system.
Examples of the prior art include the following papers and patents: (1) Surupa Biswas, Matthew Simpson, Rajeev Barua, “Memory Overflow Protection for Embedded Systems using Run-time Checks, Reuse and Compression,” CASES'4 Sep. 22-25, 2004. (2) ndrajit Poddar, Robbie John Minshall, “Memory leak detection and analysis in WebSphere Application Server,” http://www-128.ibm.com/developerworks/websphere/library/techinstances/0606_podda r/0606_poddar.html, Jun. 28, 2006. (3) Chen, D. Messer, A. Milojicic, D. Sandhya Dwarkadas, “Garbage collector assisted memory offloading for memory-constrained devices,” Mobile Computing Systems and Applications 2003, Oct. 9-10, 2003. (4) U.S. Pat. No. 7,010,661 B2 entitled “Efficient Service Management in Home Gateways.” (5) U.S. Pat. No. 5,699,539 entitled “Virtual memory management system and method using data compression.” (6) U.S. Pat. No. 6,950,874 entitled “Method and system for management of resource leases in an application framework system.” (7) U.S. Pat. No. 6,151,688 entitled “Resource management in a clustered computer system.”
According to the techniques disclosed in the above technical papers and patents of the prior art, some memory checking mechanisms are added to avoid the exception of out of memory. Or, the instances are compressed during the execution and other memory spaces are shared and utilized to achieve enough available space. Or, the concept of distribution is adopted to effectively utilize and share the resources. However, the prior art cannot efficiently solve the problem of insufficient memory resources, and does not meet the basic open and simple spirit of the open platform standard. Thus, generally, the above techniques are not applicable to homes.
Therefore, it is necessary to provide a memory management system and method for open platform, so as to solve the above problems.